Promise.resolve().then(()=>{
    console.log('Promise1')
    setTimeout(()=>{
        console.log('setTimeout2')
    },0)
})
setTimeout(()=>{
    console.log('setTimeout1')
    Promise.resolve().then(()=>{
        console.log('Promise2')
    })
},0)

/*
浏览器和Node 环境下，microtask 任务队列的执行时机不同

浏览器端，microtask 在事件循环的 macrotask 执行完之后执行
Promise1->setTimeout1->setTimeout2->Promise2

Node端，microtask 在事件循环的各个阶段之间执行
Promise1->setTimeout1->setTimeout2->Promise2
*/
